home *** CD-ROM | disk | FTP | other *** search
/ Programming Languages Suite / ProgLangD.iso / Borland Visual dBASE Professiona v7.0 / DATA1.CAB / Sample_dBASE / Mugs / Invoice.wfm < prev    next >
Text File  |  1997-11-20  |  14KB  |  562 lines

  1. //--------------------------------------------------------------
  2. //
  3. //  Invoice.wfm - Mugs Sample Application
  4. //
  5. //  Data entry from for Invoice table.
  6. //
  7. //  Dependencies: MUGS.CFM
  8. //                INVOICE.DMD
  9. //
  10. //  Visual dBASE Samples Group
  11. //
  12. //  $Revision:   1.19  $
  13. //
  14. //  Copyright (c) 1997, Borland International, Inc. 
  15. //  All rights reserved.
  16. //
  17. //---------------------------------------------------------------
  18. SET TALK OFF
  19. ** END HEADER -- do not remove this line
  20. //
  21. // Generated on 10/23/97
  22. //
  23. parameter bModal
  24. local f
  25. f = new invoiceForm()
  26. if (bModal)
  27.    f.mdi = false // ensure not MDI
  28.    f.readModal()
  29. else
  30.    f.open()
  31. endif
  32.  
  33. class invoiceForm of MUGSDATACFORM from "MUGS.CFM"
  34.    with (this)
  35.       onClose = class::FORM_ONCLOSE
  36.       open = class::FORM_OPEN
  37.       height = 20
  38.       left = 2
  39.       top = 0.5
  40.       width = 76
  41.       text = "Invoice - Data Entry"
  42.    endwith
  43.  
  44.  
  45.    this.DMINVOICE = new DATAMODREF()
  46.    this.DMINVOICE.parent = this
  47.    with (this.DMINVOICE)
  48.       filename = "INVOICE.DMD"
  49.       dataModClass = "InvoiceDataModule"
  50.       share = 0
  51.       active = true
  52.       left = -0.1429
  53.       top = -0.0455
  54.    endwith
  55.  
  56.  
  57.    with (this.BOOK1)
  58.       height = 18
  59.       left = 1
  60.       width = 74
  61.       metric = 0
  62.    endwith
  63.  
  64.  
  65.    with (this.BOOK1.GRIDROWS)
  66.  
  67.       dataLink = parent.parent.DMINVOICE.ref.invoice1.rowset
  68.       metric = 0
  69.    endwith
  70.  
  71.  
  72.    this.BOOK1.LABELID = new TEXT(this.BOOK1)
  73.    with (this.BOOK1.LABELID)
  74.       height = 1
  75.       left = 2
  76.       top = 2
  77.       width = 10
  78.       metric = 0
  79.       colorNormal = "BtnText"
  80.       transparent = true
  81.       fontName = "MS Sans Serif"
  82.       fontSize = 8
  83.       text = "Invoice #:"
  84.    endwith
  85.  
  86.  
  87.    this.BOOK1.ENTRYID = new ENTRYFIELD(this.BOOK1)
  88.    with (this.BOOK1.ENTRYID)
  89.       enabled = false
  90.       height = 1
  91.       left = 11.5
  92.       top = 2
  93.       width = 9
  94.       metric = 0
  95.       dataLink = parent.parent.DMINVOICE.ref.invoice1.rowset.fields["Invoice ID"]
  96.       picture = "9999999"
  97.       colorHighLight = ""
  98.       fontName = "MS Sans Serif"
  99.       fontSize = 8
  100.       validRequired = true
  101.       borderStyle = 7
  102.    endwith
  103.  
  104.  
  105.    this.BOOK1.LABELDATE = new TEXT(this.BOOK1)
  106.    with (this.BOOK1.LABELDATE)
  107.       height = 1
  108.       left = 33
  109.       top = 2
  110.       width = 10
  111.       metric = 0
  112.       colorNormal = "BtnText"
  113.       transparent = true
  114.       fontName = "MS Sans Serif"
  115.       fontSize = 8
  116.       text = "Order Date:"
  117.    endwith
  118.  
  119.  
  120.    this.BOOK1.LABELCUST = new TEXT(this.BOOK1)
  121.    with (this.BOOK1.LABELCUST)
  122.       height = 1
  123.       left = 2
  124.       top = 3.5
  125.       width = 10
  126.       metric = 0
  127.       colorNormal = "BtnText"
  128.       transparent = true
  129.       fontName = "MS Sans Serif"
  130.       fontSize = 8
  131.       text = "Customer:"
  132.    endwith
  133.  
  134.  
  135.    this.BOOK1.ENTRYCUSTOMER = new ENTRYFIELD(this.BOOK1)
  136.    with (this.BOOK1.ENTRYCUSTOMER)
  137.       enabled = false
  138.       height = 1
  139.       left = 21
  140.       top = 3.5
  141.       width = 23
  142.       metric = 0
  143.       colorHighLight = ""
  144.       fontName = "MS Sans Serif"
  145.       fontSize = 8
  146.       value = "CUSTOMERNAME"
  147.       validRequired = true
  148.       borderStyle = 7
  149.    endwith
  150.  
  151.  
  152.    this.BOOK1.BUTTONCUSTOMER = new PUSHBUTTON(this.BOOK1)
  153.    with (this.BOOK1.BUTTONCUSTOMER)
  154.       onClick = class::BUTTONCUSTOMER_ONCLICK
  155.       onOpen = {;this.text="";this.enabled = ( TYPE("this.form.app") == "O" )}
  156.       height = 1.2
  157.       left = 45
  158.       top = 3.4
  159.       width = 4
  160.       text = " "
  161.       metric = 0
  162.       upBitmap = "RESOURCE #148"
  163.       disabledBitmap = "RESOURCE #149"
  164.       fontSize = 8
  165.       speedTip = "Select Customer"
  166.       group = true
  167.       colorNormal = "BtnText/BtnFace"
  168.       value = false
  169.    endwith
  170.  
  171.  
  172.    this.BOOK1.RECTANGLE1 = new RECTANGLE(this.BOOK1)
  173.    with (this.BOOK1.RECTANGLE1)
  174.       left = 1
  175.       top = 5
  176.       width = 72
  177.       height = 5.5
  178.       metric = 0
  179.       text = "Payment"
  180.       colorNormal = "WindowText/BtnFace"
  181.       fontName = "MS Sans Serif"
  182.       fontSize = 8
  183.    endwith
  184.  
  185.  
  186.    this.BOOK1.RADIOVISA = new RADIOBUTTON(this.BOOK1)
  187.    with (this.BOOK1.RADIOVISA)
  188.       onChange = class::PAYMENT_ONCHANGE
  189.       transparent = false
  190.       height = 1
  191.       left = 3
  192.       top = 6
  193.       width = 19
  194.       text = "Visa"
  195.       metric = 0
  196.       colorNormal = "WindowText/BtnFace"
  197.       fontName = "MS Sans Serif"
  198.       fontSize = 8
  199.       group = true
  200.       value = true
  201.    endwith
  202.  
  203.  
  204.    this.BOOK1.RADIOMC = new RADIOBUTTON(this.BOOK1)
  205.    with (this.BOOK1.RADIOMC)
  206.       onChange = class::PAYMENT_ONCHANGE
  207.       transparent = false
  208.       height = 1
  209.       left = 3
  210.       top = 7
  211.       width = 19
  212.       text = "MasterCard"
  213.       metric = 0
  214.       colorNormal = "WindowText/BtnFace"
  215.       fontName = "MS Sans Serif"
  216.       fontSize = 8
  217.       group = false
  218.       value = false
  219.    endwith
  220.  
  221.  
  222.    this.BOOK1.RADIODISCOVER = new RADIOBUTTON(this.BOOK1)
  223.    with (this.BOOK1.RADIODISCOVER)
  224.       onChange = class::PAYMENT_ONCHANGE
  225.       transparent = false
  226.       height = 1
  227.       left = 3
  228.       top = 8
  229.       width = 19
  230.       text = "Discover/NOVUS"
  231.       metric = 0
  232.       colorNormal = "WindowText/BtnFace"
  233.       fontName = "MS Sans Serif"
  234.       fontSize = 8
  235.       group = false
  236.       value = false
  237.    endwith
  238.  
  239.  
  240.    this.BOOK1.RADIOCHECK = new RADIOBUTTON(this.BOOK1)
  241.    with (this.BOOK1.RADIOCHECK)
  242.       onChange = class::PAYMENT_ONCHANGE
  243.       transparent = false
  244.       height = 1
  245.       left = 3
  246.       top = 9
  247.       width = 19
  248.       text = "Check"
  249.       metric = 0
  250.       colorNormal = "WindowText/BtnFace"
  251.       fontName = "MS Sans Serif"
  252.       fontSize = 8
  253.       group = false
  254.       value = false
  255.    endwith
  256.  
  257.  
  258.    this.BOOK1.LABELCARDNAME = new TEXT(this.BOOK1)
  259.    with (this.BOOK1.LABELCARDNAME)
  260.       height = 1
  261.       left = 25
  262.       top = 6
  263.       width = 19
  264.       metric = 0
  265.       colorNormal = "BtnText"
  266.       transparent = true
  267.       fontName = "MS Sans Serif"
  268.       fontSize = 8
  269.       text = "Name of Cardholder:"
  270.    endwith
  271.  
  272.  
  273.    this.BOOK1.ENTRYCARDNAME = new ENTRYFIELD(this.BOOK1)
  274.    with (this.BOOK1.ENTRYCARDNAME)
  275.       height = 1
  276.       left = 45
  277.       top = 6
  278.       width = 25
  279.       metric = 0
  280.       dataLink = parent.parent.DMINVOICE.ref.invoice1.rowset.fields["Card Name"]
  281.       colorHighLight = ""
  282.       fontName = "MS Sans Serif"
  283.       fontSize = 8
  284.       validRequired = true
  285.       borderStyle = 7
  286.    endwith
  287.  
  288.  
  289.    this.BOOK1.LABELCARDNO = new TEXT(this.BOOK1)
  290.    with (this.BOOK1.LABELCARDNO)
  291.       height = 1
  292.       left = 25
  293.       top = 7
  294.       width = 19
  295.       metric = 0
  296.       colorNormal = "BtnText"
  297.       transparent = true
  298.       fontName = "MS Sans Serif"
  299.       fontSize = 8
  300.       text = "Card Number:"
  301.    endwith
  302.  
  303.  
  304.    this.BOOK1.ENTRYCARDNUMBER = new ENTRYFIELD(this.BOOK1)
  305.    with (this.BOOK1.ENTRYCARDNUMBER)
  306.       height = 1
  307.       left = 45
  308.       top = 7
  309.       width = 25
  310.       metric = 0
  311.       dataLink = parent.parent.DMINVOICE.ref.invoice1.rowset.fields["Card Number"]
  312.       colorHighLight = ""
  313.       fontName = "MS Sans Serif"
  314.       fontSize = 8
  315.       validRequired = true
  316.       borderStyle = 7
  317.    endwith
  318.  
  319.  
  320.    this.BOOK1.LABELCARDDATE = new TEXT(this.BOOK1)
  321.    with (this.BOOK1.LABELCARDDATE)
  322.       height = 1
  323.       left = 25
  324.       top = 8
  325.       width = 19
  326.       metric = 0
  327.       colorNormal = "BtnText"
  328.       transparent = true
  329.       fontName = "MS Sans Serif"
  330.       fontSize = 8
  331.       text = "Expiration Date:"
  332.    endwith
  333.  
  334.  
  335.    this.BOOK1.ENTRYCARDEXP = new ENTRYFIELD(this.BOOK1)
  336.    with (this.BOOK1.ENTRYCARDEXP)
  337.       height = 1
  338.       left = 45
  339.       top = 8
  340.       width = 12
  341.       metric = 0
  342.       dataLink = parent.parent.DMINVOICE.ref.invoice1.rowset.fields["Card Exp"]
  343.       colorHighLight = ""
  344.       fontName = "MS Sans Serif"
  345.       fontSize = 8
  346.       validRequired = true
  347.       borderStyle = 7
  348.    endwith
  349.  
  350.  
  351.    this.BOOK1.CHECKLABEL = new TEXT(this.BOOK1)
  352.    with (this.BOOK1.CHECKLABEL)
  353.       height = 0.8235
  354.       left = 25
  355.       top = 9
  356.       width = 19
  357.       metric = 0
  358.       colorNormal = "BtnText"
  359.       transparent = true
  360.       fontName = "MS Sans Serif"
  361.       fontSize = 8
  362.       text = "Check#"
  363.    endwith
  364.  
  365.  
  366.    this.BOOK1.SPINCHECK = new SPINBOX(this.BOOK1)
  367.    with (this.BOOK1.SPINCHECK)
  368.       enabled = false
  369.       height = 1
  370.       left = 45
  371.       top = 9
  372.       width = 12
  373.       metric = 0
  374.       dataLink = parent.parent.DMINVOICE.ref.invoice1.rowset.fields["Check Number"]
  375.       picture = "99999999"
  376.       colorHighLight = ""
  377.       fontName = "MS Sans Serif"
  378.       fontSize = 8
  379.       validRequired = true
  380.    endwith
  381.  
  382.  
  383.    this.BOOK1.LABELITEMS = new TEXT(this.BOOK1)
  384.    with (this.BOOK1.LABELITEMS)
  385.       height = 1
  386.       left = 1
  387.       top = 11
  388.       width = 10
  389.       metric = 0
  390.       colorNormal = "BtnText"
  391.       transparent = true
  392.       fontName = "MS Sans Serif"
  393.       fontSize = 8
  394.       text = "Lineitems:"
  395.    endwith
  396.  
  397.  
  398.    this.BOOK1.GRIDITEMS = new GRID(this.BOOK1)
  399.    with (this.BOOK1.GRIDITEMS)
  400.  
  401.       bgColor = "white"
  402.       dataLink = parent.parent.DMINVOICE.ref.lineitem1.rowset
  403.       height = 5
  404.       left = 12
  405.       top = 11
  406.       width = 60
  407.       metric = 0
  408.    endwith
  409.  
  410.  
  411.    this.BOOK1.SPINORDERDATE = new SPINBOX(this.BOOK1)
  412.    with (this.BOOK1.SPINORDERDATE)
  413.       height = 1
  414.       left = 45
  415.       top = 2
  416.       width = 12
  417.       metric = 0
  418.       dataLink = parent.parent.DMINVOICE.ref.invoice1.rowset.fields["Order Date"]
  419.       colorHighLight = ""
  420.       rangeMax = {03/20/98}
  421.       rangeMin = {12/10/97}
  422.       fontName = "MS Sans Serif"
  423.       fontSize = 8
  424.       validRequired = true
  425.       borderStyle = 7
  426.    endwith
  427.  
  428.  
  429.    this.BOOK1.ENTRYCUSTOMERID = new ENTRYFIELD(this.BOOK1)
  430.    with (this.BOOK1.ENTRYCUSTOMERID)
  431.       enabled = false
  432.       height = 1
  433.       left = 11.5
  434.       top = 3.5
  435.       width = 9
  436.       metric = 0
  437.       dataLink = parent.parent.DMINVOICE.ref.customer1.rowset.fields["Customer ID"]
  438.       picture = "9999999"
  439.       colorHighLight = ""
  440.       fontName = "MS Sans Serif"
  441.       fontSize = 8
  442.       borderStyle = 7
  443.    endwith
  444.  
  445.  
  446.    this.rowset = this.DMINVOICE.ref.invoice1.rowset
  447.  
  448.    // {Linked Method} form.book1.buttoncustomer.onClick
  449.    function BUTTONCUSTOMER_OnClick
  450.       local rInvoice, nID
  451.  
  452.       rInvoice = this.form.DMINVOICE.ref.invoice1.rowset
  453.       nID  = this.form.rowset.fields["Customer ID"].value
  454.       d    = null
  455.  
  456.       nID := this.form.app.openCustomerSelectDialog( nID )
  457.  
  458.       if ( nID == -1 )
  459.          // user wants to add a new new customer
  460.          nID := null        
  461.          d = new CustomerForm()       
  462.          d.newID = null
  463.          d.app  = this
  464.          d.mdi := false
  465.          d.rowset.beginAppend()
  466.          d.readmodal()
  467.          nID := d.newID         
  468.       endif
  469.       if ( nID <> null )
  470.          try 
  471.             rInvoice.fields["CUSTOMER ID"].value = nID
  472.             rInvoice.save()
  473.          catch ( Exception e )
  474.             // catch lock errors
  475.             MSGBOX( "Unable to update Invoice table.", "Alert", 0 )
  476.             rInvoice.abandon()
  477.          endtry
  478.          rInvoice.refreshControls()
  479.       endif
  480.    return
  481.    
  482.    // {Linked Method} form.open
  483.    function Form_Open
  484.       local bOpen
  485.       this.rowset.form = this
  486.       this.rowset.onNavigate := class::Form_onNavigate
  487.  
  488.       // Create  calculated field for the customer name
  489.       // and link it to an entry field.
  490.       f = new Field()
  491.       with (f)
  492.          fieldName := "Customer Name"
  493.          beforeGetValue := ;
  494.            { || RTRIM( IIF( this.parent["First Name"].value == null,;
  495.                         "", this.parent["First Name"].value ) ) ;
  496.           + SPACE(1) + IIF( this.parent["Last Name"].value == null,;
  497.                         "", this.parent["Last Name"].value ) }
  498.       endwith
  499.       this.DMINVOICE.ref.customer1.rowset.fields.add( f )
  500.       this.book1.entryCustomer.dataLink := f
  501.  
  502.       this.title.text := "<h2>Invoice</h2>"
  503.    return ( SUPER::FORM_OPEN() )
  504.  
  505.    // {Linked Method} form.onClose
  506.    function Form_onClose
  507.       this.rowset.form := null // remove extra reference
  508.    return ( this.rowset.form )
  509.  
  510.    function Form_OnNavigate
  511.       local payField, bCheck
  512.       payField = this.fields["Pay Type"]
  513.       bCheck   = false
  514.       if ( not this.endOfSet )
  515.          bCheck = ( payField.value == "CH" )
  516.          with ( this.form.book1 )
  517.             radioMC.value       := ( payField.value == "MC" )
  518.             radioVISA.value     := ( payField.value == "VI" )
  519.             radioCheck.value    := ( payField.value == "CH" )
  520.             radioDiscover.value := ( payField.value == "DN" )
  521.          endwith
  522.       endif
  523.  
  524.       with ( this.form.book1 )
  525.          ENTRYCARDNUMBER.enabled := ( NOT bCheck )
  526.          ENTRYCARDNAME.enabled   := ( NOT bCheck )
  527.          ENTRYCARDEXP.enabled    := ( NOT bCheck )
  528.          SPINCHECK.enabled       := ( bCheck )
  529.       endwith
  530.    return ( bCheck )
  531.  
  532.    // {Linked Method} form.book1.radiocheck.onChange
  533.    // {Linked Method} form.book1.radiodiscover.onChange
  534.    // {Linked Method} form.book1.radiomc.onChange
  535.    // {Linked Method} form.book1.radiovisa.onChange
  536.    function Payment_OnChange
  537.       local bCheck, payField
  538.       bCheck   = this.form.book1.radioCheck.value
  539.       payField = this.form.rowset.fields["Pay Type"]
  540.  
  541.       with ( this.form.book1 )
  542.          ENTRYCARDNUMBER.enabled := ( NOT bCheck )
  543.          ENTRYCARDNAME.enabled   := ( NOT bCheck )
  544.          ENTRYCARDEXP.enabled    := ( NOT bCheck )
  545.          SPINCHECK.enabled       := ( bCheck )
  546.       endwith
  547.  
  548.       do case
  549.          case ( this.form.book1.radioMC.value )
  550.               payField.value = "MC"
  551.          case ( this.form.book1.radioVISA.value )
  552.               payField.value = "VI"
  553.          case ( this.form.book1.radioDiscover.value )
  554.               payField.value = "DN"
  555.          case ( this.form.book1.radioCheck.value )
  556.               payField.value = "CH"
  557.       endcase
  558.  
  559.    return ( bCheck )
  560.       
  561. endclass
  562.